package cartes;

public class Carte implements Comparable<Carte> {
	private CouleurCarte couleur;
	private Denomination denomination;

	public CouleurCarte getCouleur() {
		return couleur;
	}

	public Denomination getDenomination() {
		return denomination;
	}

	public Carte(Denomination denomination, CouleurCarte couleur) {
		this.denomination = denomination;
		this.couleur = couleur;
	}

	public String toString() {
		return couleur.toString() + " " + denomination.toString();
	}

	public int hashCode() {
		return this.hashCode();
	}

	@Override
	public int compareTo(Carte o) {
		if (o == null)
			throw new NullPointerException();
		if (this.equals(o))
			return 0;
		return denomination.compareTo(o.getDenomination());
	}

	public boolean equals(Object o) {
		if (o == null || !(o instanceof Carte))
			return false;
		Carte carte = (Carte) o;
		return couleur.equals(carte.getCouleur()) && denomination.equals(carte.getDenomination());
	}
}
